package link


import "fmt"
//实现链表
type LinkNode struct {
	data interface{}
	next *LinkNode
}
type Link struct {
	head *LinkNode
	tail *LinkNode
}
func (p *Link) InsertHead(data interface{})  {
	node := &LinkNode{
		data:data,
		next:nil,
	}
	if p.tail == nil && p.head == nil {
		p.tail = node
		p.head = node
		return
	}
	node.next = p.head
	p.head = node
}

func (p *Link) InsertTail(data interface{})  {
	node := &LinkNode{
		data:data,
		next:nil,
	}
	if p.tail == nil && p.head == nil {
		p.tail = node
		p.head = node
		return
	}
	p.tail.next = node
	p.tail = node
}

func (p *Link)Trans() {
	s := p.head
	for s != nil {
		fmt.Println(s.data)
		s = s.next
	}
}